/*
 *    Copyright (c) 2018-2025, lengleng All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions are met:
 *
 * Redistributions of source code must retain the above copyright notice,
 * this list of conditions and the following disclaimer.
 * Redistributions in binary form must reproduce the above copyright
 * notice, this list of conditions and the following disclaimer in the
 * documentation and/or other materials provided with the distribution.
 * Neither the name of the pig4cloud.com developer nor the names of its
 * contributors may be used to endorse or promote products derived from
 * this software without specific prior written permission.
 * Author: lengleng (wangiegie@gmail.com)
 */
package com.pig4cloud.pig.admin.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.pig4cloud.pig.admin.api.entity.SysDictItem;
import com.pig4cloud.pig.common.core.util.R;

/**
 * 字典项服务接口
 * <p>
 * 提供数据字典项的业务逻辑处理，包括字典项的增删改查操作。
 * 字典项是字典类型的具体值，用于系统中下拉框、单选框等控件的数据源
 * </p>
 *
 * @author lengleng
 * @date 2025/05/30
 */
public interface SysDictItemService extends IService<SysDictItem> {

	/**
	 * 删除字典项
	 * <p>
	 * 删除指定的字典项，同时清除相关缓存。
	 * 删除前会检查该字典项是否被引用，确保数据完整性
	 * </p>
	 * 
	 * @param id 字典项ID
	 * @return 操作结果，包含成功状态和提示信息
	 */
	R removeDictItem(Long id);

	/**
	 * 更新字典项
	 * <p>
	 * 更新字典项的基本信息，包括标签、值、排序等。
	 * 更新后会自动同步缓存，确保数据一致性
	 * </p>
	 * 
	 * @param item 需要更新的字典项对象，必须包含ID
	 * @return 操作结果，包含成功状态和提示信息
	 */
	R updateDictItem(SysDictItem item);

}
